Skip to content

Latest commit

 

History

History
57 lines (38 loc) · 5.24 KB

3 open source alternatives to MATLAB.org

File metadata and controls

57 lines (38 loc) · 5.24 KB

3个MATLAB的开源替代

对于学数学,物理,工程,经济等需要经常与数字打交道的学生来说, MATLAB 基本上是他们接触编程和科学计算的首要途径.

MATLAB是一款用于学习的好工具, 不过(按我的经验来说) 很多时候学生和研究人员使用MATLAB的场景并没有对计算有那么高的要求; 这些任务完全可以使用其他脚本工具来完成,甚至可能都不用用到统计等其他数学相关的包. 不过话说回来, 由于MATLAB在学术界中几乎无处不在, 带来了大量熟悉该语言,插件和功能的用户群体.

然而 MATLAB 是一款专利工具. 你无法接触到它的源代码, 你很难理解它的运行机制也很难对它作出修改. 而且对于那些非学术界的人来说,它也特别的昂贵, 单拷贝的版权费能达到数千美元.

好在, 存在很多开源的替代品. 根据你的具体目标, 总会有一个或多个替代品能够满足你的要求. 下面是三个可以考虑的替代品:

GNU Octave

GNU Octave 恐怕是最出名的 MATLAB 替代品了吧. 经过近三十年的发展, Octave已经可以运行在Windows, Mac, 以及 Linux 上—而且在大多数Linux发行版上都有打包. 如果你想要一款尽可能与 MATLAB 语言接近的项目,那么 Octave 就很适合你; 它致力于确保兼容性, 很多为 MATLAB 开发的项目都可以直接在 Octave 中运行而无需进行任何修改.

Octave 4自带了一个默认的前端交互程序,但除此之外你也还有很多其他的选择; 有些界面跟MATLAB很接近. Octave的 Wikipedia 页 中罗列了很多选择.

Octave 基于 GPL 发布, 你可以从 GNU FTP site 上下载到它的源代码.

Scilab

Scilab 是另一款数值计算的开源替代品,它支持所有的主流平台: Windows, Mac, 和 Linux. Scilab 可能是除了 Octave 之外最知名的替代品了, 而且 (跟 Octave 一样) 它的实现也与MATLAB很接近, 不过它并不保证完全的兼容性.

Scilab 基于 与GPL兼容的 CeCILL license 发布, 他的 源代码 可以在项目网站上找到.

Sage

SageMath 是另一款不错的替代品. 它基于大量知名的Python科学计算库所构建, 而且它的语言在语法上也跟Python很接近. 它有很多功能,包括一个命令行接口, 基于浏览器的 notebooks, 用于编写内嵌于其他文档中公式的工具, 以及相当多的数学库.

SageMath 基于 GPL license 发布, 它的源代码可以在 项目网站 上找到.


这份清单仅仅罗列了很少的一些研究人员和学生可用于作为MATLAB的开源替代品.  根据你的具体需求R, Julia, Python, 以及其他标准编程语言也可以是很不错的选择. 你也可以考虑以下这些开源工具:

  • FreeMat,一套发布于 GPL 协议下的用于快速开发,探索科学原型和数据处理的环境. 它可以运行于 Linux, OS X, 和 Windows 上, 不过它可能会有些落伍,因为其最新版本是发布于2013年.
  • Genius Mathematic Tool, 一款积极开发的计算器程序和研究工具. 它由 Genius Extension 语言编写而成,可以跑在 Linux 和 Unix 计算机上, 而且基于 GPL GNU license 发布.
  • Maxima,另一款MATLAB的替代品,其更新非常频繁. 它构建于 Macsyma(一款由MIT于20世纪60年代开发的”传奇计算机代数系统”) 之上, 可以在 Linux, Mac OS X, 和 Windows 上编译, 而且基于  GPLv2 协议发布.
  • NymPy,Python上用于科学计算的主要package. 它也为SciPy Stack提供了基础的数据结构, 它提供了一个基于Python的数学生态圈, 同时还是一款用于科学和工程上的软件. NymPy 基于 BSD license 协议发布, 支持 Windows, Mac OS X, 以及 Linux 平台.
  • SymPy, 另一款基于 BSD 协议发布的用于符号数学的Python库. 它可以安装在任何运行了 Python 2.7 及以上版本的电脑上. 它的目标是成为一个完整的计算机代数系统; 它拥有一个很活跃的开发团队,发布也很稳定;而且它也被用在很多其他项目中(包括上面提到的 SageMath).

你还有什么其他的MATLAB替代品码? 你比较喜欢哪个呢?理由是什么? 欢迎留言.